

var messageConst = {

    // 消息类型
    status:{
        // 登陆成功
        LOGIN_SUCCESS :'S_LOGIN',
        // 登陆失败，账号已被占用
        LOGIN_FAIL_1001 :'F_LOGIN_1001',
        // 登陆，账号不存在
        LOGIN_FAIL_1002 : 'F_LOGIN_1002',
        // 用户下线
        USER_OFF_LINE : 'ME_OFF_LINE',
        // 好友上线
        FRE_ON_LINE : 'FRE_ON_LINE',
        // 好友下线
        FRE_OFF_LINE : 'FRE_OFF_LINE',
        // 消息:系统
        MESSAGE_SYS:    'MESSAGE_SYS',
        // 消息：群聊消息
        MESSAGE_G:      'MESSAGE_G',
        // 消息：私聊消息
        MESSAGE_P:      'MESSAGE_P'
    }
};


/**
 * 构造器
 *
 * @param buffer
 * @param handler ZakeEvent
 * @param token
 */
function ZakePackage(buffer,handler,token)
{
    // 数据初始化
    this.message = JSON.parse(buffer);
    this.handler = handler;
    this.token = token;
}


/**
 * 执行
 */
ZakePackage.prototype.call = function () {

    var obj = this;
    obj.readBlobCallBack(obj);
};


/**
 * 消息读取之后操作
 * @param obj
 */
ZakePackage.prototype.readBlobCallBack = function(obj){


    var message = obj.message;
    var token = obj.token;

    console.log(message);

    // 事件处理
    switch (message.status){

        // 登陆失败-用户已登陆
        case messageConst.status.LOGIN_FAIL_1001:
            obj.handler.SLoginFail(token,"用户已登陆");
            break;

        // 登陆失败-用户不存在
        case messageConst.status.LOGIN_FAIL_1002:
            obj.handler.SLoginFail(token,"用不不存在");
            break;

        // 登陆成功+渲染好友列表
        case messageConst.status.LOGIN_SUCCESS:
            obj.handler.SLoginSuccess(message.data);
            break;

        // 用户下线
        case messageConst.status.USER_OFF_LINE:
            console.log("--"+messageConst.status.USER_OFF_LINE+"--4--");
            obj.handler.SUserOff(message.data);
            break;

        // 好友上线
        case messageConst.status.FRE_ON_LINE:
            console.log("--"+messageConst.status.FRE_ON_LINE+"--5--");
            obj.handler.SFriendOn(message.data);
            break;

        // 好友下线
        case messageConst.status.FRE_OFF_LINE:
            console.log("--"+messageConst.status.FRE_OFF_LINE+"--6--");
            obj.handler.SFriendOff(message.data);
            break;
        // 私聊消息
        case messageConst.status.MESSAGE_P:
            console.log("--私聊消息--");
            console.log(message.data);
            obj.handler.messageP(message.data);
            break;
    }

};

